package com.teach.servlet.admin;

import com.alibaba.fastjson.JSON;
import com.teach.dao.CountryInfoDAO;
import com.teach.dao.impl.CountryInfoDAOImpl;
import com.teach.entity.CountryInfo;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * <pre>
 * - 参赛国家列表(json)
 * Author : J.L.Zhou
 * E-Mail : 2233875735@qq.com
 * Tel : 151 1104 7708
 * Date : 2022-05-05 11:30
 * Version : 1.0
 * Copyright 2022 jlzhou.top Inc. All rights reserved.
 * Warning: this content is only for internal circulation of the company.
 *          It is forbidden to divulge it or use it for other commercial purposes.
 * </pre>
 **/
@WebServlet("/admin/country-add.let")
public class CountryAddServlet extends HttpServlet {

  private CountryInfoDAO dao = new CountryInfoDAOImpl();

  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    response.reset();
    response.setContentType("application/json;charset=UTF-8");
    try {

      //将前端传递过来的表单数据设置到实体对象中
      //注意:如果实体属性是非String的,则需要进行转换
      //注意: 该步骤适当加入校验
      CountryInfo e = new CountryInfo();
      String code = request.getParameter("countryCode");
      if (code == null || "".equals(code)) {
        throw new ServletException("国家编码不能为空");
      }
      if (!code.matches("^\\w+$")) {
        throw new ServletException("国家编码只能是字母");
      }
      e.setCountryCode(code);
      e.setCountryUri(request.getParameter("countryUri"));
      e.setCountryName(request.getParameter("countryName"));
      e.setCountryNameCn(request.getParameter("countryNameCn"));
      e.setCountryNameEn(request.getParameter("countryNameEn"));

      try {
        dao.insert(e);
        response.getWriter().print("{\"ok\":true}");
      } catch (Exception ex) {
        throw new ServletException("国家代码不能重复", ex);
      }

    }catch (Exception ex){
      response.getWriter().print("{\"ok\":false,\"msg\":\""+ex.getMessage()+"\"}");
    }

    response.flushBuffer();
  }
}
